home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 8 / The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO / telecom / e148g0s.zip / EZYCOM.H < prev    next >
C/C++ Source or Header  |  1996-12-01  |  70KB  |  2,110 lines

  1. /********************************************************************
  2.  * Ezycom structures V1.48g0 29/11/96
  3.  * by Peter Davies
  4.  *
  5.  * These structures may ONLY be used in accordance with those
  6.  * agreements laid out in the Official Ezycom Structures.
  7.  * Peter Davies takes no responsibility whatsoever
  8.  * for the correctness of these structures.
  9.  *
  10.  * If, you find any faults please notify us of them.
  11.  *
  12.  * Please refer to the pascal structures for more explanation, before
  13.  * querying us
  14.  *
  15.  ********************************************************************/
  16.  
  17. #ifndef EZYCOMH
  18.  
  19. #define EZYCOMH
  20.  
  21. #define  word    unsigned short
  22. #define  byte    unsigned char
  23. #define  longint signed   long int
  24. #define  sword     signed   short
  25.  
  26. #define  EZYVER "1.48"
  27. #define  VERSIONHIGH 1
  28. #define  VERSIONLOW 48
  29. #define  PRODNAME "Ezycom"
  30. #define  COPYRIGHT "Peter Davies"
  31. #define  COPYRIGHTYEAR "1992-1996"
  32. #define  MAXFREE  1275
  33. #define  USERFREE 121
  34. #define  CONSTANTFILEFREESPACE 439
  35. #define  MAXNODES 256
  36. #define  MAXAKA 32
  37. #define  MAXMESSALL 1536
  38. #define  MAXMESS    MAXMESSALL
  39. #define  MAXBAUDREC 22
  40. #define  FLTMAXSIZE  2048   //      maximum size of a file description
  41.  
  42. /****** Take Note ********************************************************
  43. Boolean can be defined as a Char value under C or as an enum with a
  44. true/false value under C++ (if compiled with enum to char switch)
  45. **************************************************************************/
  46. /* typedef char Boolean; */
  47.  
  48. /* Swapping Types : 0=None, 1=Ems, 2=Xms, 3=Disk, 4=EmsXms, 5=XmsEms */
  49.  
  50. /* The following can also be defined as enum under C++ */
  51.  
  52. typedef unsigned char AskType;        // 0=yes,1=no,2=ask default yes,
  53.                                       // 3=ask default no
  54. typedef unsigned char PhoneType;      // 0=business,1=data,2=nophone
  55.  
  56. typedef unsigned char MsgType;
  57.  
  58. #define mtLocal     0
  59. #define mtNetMail   1
  60. #define mtEchoMail  2
  61. #define mtPassThru  3
  62. #define mtWaitThru  4
  63. #define mtAllMail   5
  64. #define mtInternet  6
  65. #define mtNews      7
  66. #define mtFax       8
  67.  
  68. typedef unsigned char MsgKindsType;   // 0=public,1=private,2=both
  69. typedef unsigned char ShowFileSizeType; // 0=nosize,1=bytes,2=kilobytes
  70. typedef char MaxStr[256];
  71. typedef char UserString[36];
  72. typedef char FileStr[13];    // max length of a FileName
  73. typedef char DomainStr[21];  // domain string
  74. typedef char AreaTagStr[76];
  75. typedef char Str3[4];
  76. typedef char Str4[5];
  77. typedef char Str8[9];
  78. typedef char Str12[13];
  79. typedef char Str23[24];
  80. typedef char Str30[31];
  81. typedef char Str72[73];
  82. typedef char Str128[129];
  83. typedef unsigned char FlagType[4];
  84. typedef unsigned char GroupType[4];
  85.  
  86. typedef struct DateTime {
  87.    word  Year,
  88.           Month,
  89.           Day,
  90.           Hour,
  91.           Min,
  92.            Sec;
  93. } DateTime;
  94.  
  95. typedef struct SecurityType {
  96.   word      Security;
  97.   FlagType  OnFlags,
  98.             OffFlags;
  99. } SecurityType;
  100.  
  101. typedef struct DateRecord {
  102.   word      Year;
  103.   byte      Month,
  104.             Day;
  105. } DateRecord;
  106.  
  107. typedef struct NetRecord {
  108.   word      Zone,
  109.             Net,
  110.             Node,
  111.             Point;
  112. } NetRecord;
  113.  
  114. typedef struct Net5DRecord {
  115.   word       Zone,
  116.              Net,
  117.              Node,
  118.              Point;
  119.   DomainStr  Domain;
  120. } Net5DRecord;
  121.  
  122.  
  123. /**********************************************************
  124.  
  125.   FileName:    <configrec.userbasepath>USERS.BBS
  126.  
  127.   Description: Users File
  128.                  Records in parrallel with USERSEXT.BBS
  129.  
  130.   Limitations: 65000 records (users) maximum
  131.  
  132.     attribute
  133.       Bit 0 : Deleted
  134.           1 : Clear Screen
  135.           2 : More Prompt
  136.           3 : Ansi Capable
  137.           4 : Don't Kill User
  138.           5 : File Points Ignore
  139.           6 : Full Screen Ed
  140.           7 : Quiet Mode
  141.  
  142.     attribute2
  143.       Bit 0 : Ignore File Ratios
  144.           1 : Extended IBM Characters
  145.           2 : On = MMDDYY Off = DDMMYY
  146.           3 : Ignore Paging Hours
  147.           4 : Exclude User
  148.           5 : Avatar Capable
  149.           6 : Ignore Menu Time Restrictions
  150.           7 : Ignore Message Ratios
  151.  
  152.     attribute3
  153.       Bit 0 : Do Not Sound Page
  154.           1 : Page on Logon
  155.           2 : Hold Mailbox
  156.           3 : Use Combined Mailbox
  157.           4 : Gender (Off = Male, On = Female)
  158.         5 : Guest Account
  159.         6-7 : [Reserved]
  160.  
  161.     attribute4
  162.         Bit 0-7 [Reserved]
  163.  
  164. **********************************************************/
  165.  
  166.   typedef struct UsersRecord {
  167.     UserString  Name,
  168.                 Alias;
  169.     char        Password[16];
  170.     word        Security;
  171.     byte        Attribute,
  172.                 Attribute2,
  173.                 Attribute3,
  174.                 Attribute4;
  175.     FlagType    Flags;
  176.     char        DataPhone[15],
  177.                 VoicePhone[15];
  178.   } UsersRecord;
  179.  
  180.  
  181. /**********************************************************
  182.  
  183.   FileName:     <configrec.userbasepath>USERSEXT.BBS
  184.  
  185.   Description:  Extended Users Information
  186.                  Records in parrallel with USERS.BBS
  187.  
  188.  **********************************************************/
  189.  
  190.   typedef struct UsersExtraRecord {
  191.     char        Location[26];
  192.         longint     LastTimeDate;    // DOS Packed Date/Time
  193.     word        Credit,          // Users netmail credit
  194.                 Pending,         // Netmail cost pending export
  195.                 MsgsPosted,
  196.                 NoCalls,
  197.                 Uploads,
  198.                 TodayK,
  199.                 TimeUsed,
  200.                 Downloads;
  201.     longint     UploadsK,
  202.                 DownloadsK;
  203.     char        ScreenLength,
  204.                 LastPwdChange;
  205.     word        TimeBanked,
  206.                 KsBanked,
  207.                 FilePoints;
  208.     byte        QWKCompression,
  209.                 QWKDaysOld;
  210.     char        Comment[41];     // Sysop/User Comment
  211.     byte        Colour1_2,       // To retrieve the first colour & 15
  212.                 Colour3_4,       // To retrieve the second colour >> 4
  213.                 Colour5_6,
  214.                 Colour7_8,
  215.                 BKColour,
  216.                 SessionFailures;  // Number of Session Failures since last
  217.                                   // successful logon
  218.     Str8        TopMenu;          // User's Top Menu
  219.     word        FilePointsGiven;  // Number of Filepoints credited since last logon
  220.     DateRecord  DateOfBirth;
  221.     GroupType   Groups;           // user's group setting (compressed)
  222.     word        RegoDate,         // Start of Registration
  223.                 FirstDate,        // Date of First Logon
  224.                 LastFileDate;     // Last Time a New Files Search was done
  225.     char        DefProtocol;      // Blank means no default protocol
  226.     word        TimeLeft,         // Users remaining time for today
  227.                 FileArea,         // Last file area user used
  228.                 MessArea,         // Last message area user used
  229.                 QWKMaxMsgs,
  230.                 QWKMaxMsgsPerArea;
  231.     sword       TodayBankWK;      // Kilobytes Withdrawn from Bank Today
  232.                                   // Negative Numbers indicate Deposited
  233.     UserString  ForwardTo;        // forward local mail to
  234.     byte        TodayCalls;       // Times the user has called today
  235.     sword       TodayBankWT;      // Time Withdrawn from Bank Today
  236.                                   // Negative Numbers indicate Deposited
  237.     byte        Language;         // users language
  238.     word        EndRegoDate;      // End Registration Date
  239.     longint     TotTimeUsed;      // Total Time Used by the User
  240.                                   // since the last time this field was
  241.                                   // reset.  Normally first logon
  242.     char        LastBWPkt[4];     // name of last bw pkt extension
  243.     char        ExtraSpace[USERFREE];
  244.   } UsersExtraRecord;
  245.  
  246. /**********************************************************
  247.  
  248.   FileName:     <userbasepath>LASTCOMB.BBS
  249.  
  250.   Description:  Used be Ezycom for lastread & combined info
  251.  
  252.   Note:         This record adjusts when the number of
  253.                                 conferences change (in steps of 16).
  254.                   IE: 16 conferences takes up HALF of the
  255.                   diskspace of 32 conferences
  256.  
  257.  **********************************************************/
  258.  
  259.   typedef struct UsersLastRecord {
  260.     word        CombinedInfo;
  261.     word        LastReadInfo[16];
  262.   } UsersLastRecord;
  263.  
  264. /**********************************************************
  265.  
  266.   FileName:     <configrec.menupath>????????.MNU
  267.  
  268.   Description:  Menu Structure
  269.                   Record 0 has a different record structure
  270.  
  271.   Mimimum    :    1 record
  272.   Maximum    :  101 records
  273.  
  274.  
  275.   Record 0 Structure
  276.  
  277.     typ     = HiLight Colour
  278.     display = Menu Prompt
  279.     colour  = Menu Prompt Colour
  280.  
  281.   all others are undefined
  282.  
  283.     securityattr
  284.       0 = Greater than/Equal to
  285.       1 = Greater than
  286.       2 = Less than/Equal to
  287.       3 = Less than
  288.       4 = Equal to
  289.       5 = Not Equal
  290.  
  291.   attribute                            Record 0 Attribute
  292.     Bit 0 : Test Ratio K               Bit 0 : Enter Redraws
  293.                 1 : Test Message/Call Ratio
  294.         2 : Automatic Option
  295.           3 : Test Ratio Files
  296.           4 : Local Keyboard Only
  297.         5 : Remote Only
  298.       6-15: [ Reserved ]
  299.  
  300.  **********************************************************/
  301.  
  302.   typedef struct MenuRecord {
  303.     word          Typ;
  304.     SecurityType  Security;
  305.     word          MaxSecurity;
  306.     char          Display[91];
  307.     char          HotKey;
  308.     char          MiscData[91];
  309.     byte          Colour,
  310.                   TimeOnline,
  311.                   TimeLeft;
  312.     word          TimeStart,
  313.                   TimeEnd;        // Hours is "* 100"
  314.     longint       MinBaudRate,
  315.                   MaxBaudRate;
  316.     word          FilePoints;
  317.     byte          Age;
  318.     word          Attribute;
  319.     byte          Node[32];
  320.     char          GenderAccess;    // M=Male F=Female B=Both
  321.     char          PadTo384Bytes[134];
  322.   } MenuRecord;
  323.  
  324. /**********************************************************
  325.  
  326.   FileName:    PROTOCOL.EZY
  327.  
  328.   Description: Protocol Record Structure
  329.  
  330.   Size       : 60 records
  331.  
  332.     attribute
  333.       Bit 0 : enable/disable
  334.           1 : batch protocol
  335.           2 : [ Reserved ]
  336.           3 : both directions
  337.           4 : up/down
  338.           5 : bidirectional
  339.             6-7 : [ Reserved ]
  340.  
  341.  **********************************************************/
  342.  
  343.   typedef struct ProtocolRecord {
  344.     char      Name[16];
  345.     char      ActiveKey;
  346.     byte      Attribute;
  347.     char      LogFileName[61],
  348.               CtlFileName[61],
  349.               DnCtlString[61],
  350.               DnCmdString[101],
  351.               UpCmdString[101],
  352.               UpLogKeyWord[11],
  353.               DnLogKeyWord[11],
  354.               UpErrKeyWord[11],
  355.               DnErrKeyWord[11],
  356.               UpErr2KeyWord[11],
  357.               DnErr2KeyWord[11],
  358.               XferNameWordNum,
  359.               XferCPSWordNum;
  360.     word      Security;
  361.     FlagType  Flags;
  362.     byte      Efficiency;
  363.   } ProtocolRecord;
  364.  
  365. /**********************************************************
  366.  
  367.   FileName     : CONFIG.EZY
  368.  
  369.   Description  : Configuration Record
  370.  
  371.   Size         : 1 record (6144 bytes)
  372.  
  373.   Last Revised : 25/12/92(pwd)
  374.  
  375.     printerport
  376.       0 = LPT1
  377.       1 = LPT2
  378.       2 = LPT3
  379.         3 = COM1
  380.       4 = COM2
  381.       5 = COM3
  382.       6 = COM4
  383.  
  384.     autodetect
  385.       Bit 0 : Auto Detect ANSI
  386.           1 : ANSI Detect for NewUser
  387.           2 : Auto Detect IEMSI
  388.           3 : IEMSI Detect for NewUser
  389.         4 : Auto Detect RIP
  390.        5-7: [Reserved]
  391.  
  392.     configattr
  393.     Bit 0 : Move Local Uploads
  394.       1-15: [Reserved]
  395.  
  396.     multitasker
  397.           0 = Do Not Detect or Use Any MultiTasker
  398.           1 = Auto-Detect
  399.         2 = Desqview
  400.           3 = Double DOS
  401.           4 = OS/2
  402.         5 = MultiDOS Plus
  403.         6 = Taskview
  404.         7 = Topview
  405.         8 = Windows Enhanced Mode
  406.     9..255= [Reserved]
  407.  
  408. ***********************************************************/
  409.  
  410.   typedef struct ConfigRecord {
  411.     Str8          Version;
  412.     char          FreeSpace01[77],       // unused
  413.                   LogPath[61],
  414.                   aTextPath[61],
  415.                   aMenuPath[61],
  416.                   aMnuRamPath[61],
  417.                   NetmailPath[61],
  418.                   NodelistPath[61],
  419.                   MsgPath[61],
  420.                   FilePath[61],
  421.                   FreeSpace02[61],        // unused
  422.                   BinkleyOutPath[61],
  423.                   TempPath[61],
  424.                   UserBasePath[61],
  425.                   aAvatarPath[61],
  426.                   aAscPath[61],
  427.                   aAscLowPath[61],
  428.                   FileMaint[61],
  429.                   FileAttachPath[61],
  430.                   SoundPath[61],
  431.                   FastIndexPath[61],
  432.                   SystemPwd[16],          // Password to Logon System
  433.                   SysopPwd[16],           // Password to Keyboard
  434.                   NewuserPwd[16];         // Password for Newuser
  435.     Str8          NewTopMenu;             // NewUser TopMenu
  436.     byte          NewUserGroups[4];
  437.     char          InboundMail[61],
  438.                   OutboundMail[61],
  439.                   UploadPath[61],
  440.                   SwapFile[61],
  441.                   MultiPath[61],
  442.                   Brackets[3];
  443.     byte          InactivityTime,
  444.                   MinMessCheck,
  445.                   MaxLoginTime;
  446.     word          FreeSpace03;            // unused
  447.     byte          ShellSwap,              // boolean
  448.                   HighBit,                //    "
  449.                   DispPass,               //    "
  450.                   AskLocalPass,           //    "
  451.                   FastLogon,              //    "
  452.                   SysopRemote,            //    "
  453.                   PrinterLog,             //    "
  454.                   Phone1Ask,              //    "
  455.                   ColourAsk,              //    "
  456.                   AliasAsk,               //    "
  457.                   DOBAsk,                 //    "
  458.                   PhoneForce,             //    "
  459.                   Direct_Video,           //    "
  460.                   Snow_Check,             //    "
  461.                   FreeSpace04,            // unused
  462.                   Screen_Blank,
  463.                   OneWord;                // BOOLEAN
  464.     AskType       CheckMail,
  465.                   CheckFile,
  466.                   AnsiAsk,
  467.                   FullScreenAsk,
  468.                   ClearAsk,
  469.                   MoreAsk,
  470.                   AvatarAsk,
  471.                   ExtendAsk,
  472.                   USDateAsk;
  473.     byte          Phone2Ask;              // BOOLEAN
  474.     char          PhoneFormat[15],
  475.                   FreeSpace04a[61],
  476.                   FreeSpace04b[61],
  477.                   ShellPrompt[61],
  478.                   Shell2Prompt[61],
  479.                   EnterPrompt[61],
  480.                   ChatPrompt[61],
  481.                   ListPrompt[61],
  482.                   F7KeyLineTop[80],
  483.                   F7KeyLineBot[80],
  484.                   FreeSpace05[84],        // unused
  485.                   Chat2Prompt[61],
  486.                   FreeSpace05a[61],
  487.                   Freespace05b[61],
  488.                   FreeSpace05c[61],
  489.                   FreeSpace05d[61],
  490.                   LoadPrompt[61],
  491.                   FreeSpace05e[61],
  492.                   FreeSpace05f[61];
  493.     word          Security,
  494.                   LogonSecurity;
  495.     FlagType      Flags;
  496.     byte          MinPassLength,
  497.                   DispFWind,              //  Status Bar Colour  constant
  498.                   DispBWind,              //  Status Bar Colour     "
  499.                   DispPopupF,             //  Popup Forground       "
  500.                   DispPopupBorder,        //  Popup Border          "
  501.                   DispPopupB,             //  Popup Background      "
  502.                   DispF;                  //  Foreground Colour     "
  503.     word          FreeSpace06;            // Unused
  504.     byte          PassLogons,
  505.                   DOBLogon,
  506.                   PrinterPort,
  507.                   PassTries;
  508.     char          TopMenu[9];
  509.     word          IncomingCallStart,
  510.                   IncomingCallEnd;
  511.     word          WatchMess,              // constant
  512.                   NetmailCredit;          // constant
  513.     longint       AnsiMinBaud;
  514.     word          SlowBaud,
  515.                   MinLoginBaud,
  516.                   LowSecurityStart,
  517.                   LowSecurityEnd,
  518.                   SlowStart,
  519.                   SlowEnd;
  520.     char          QuoteString[6],
  521.                   FreeSpace09;            // Unused
  522.     byte          OffHook;                // BOOLEAN
  523.     word          ForceCrashMail,
  524.                   OptionCrashMail,
  525.                   NetmailFileAttach;
  526.     byte          PopupHighlight;         // Popup Highlight Colour (constant)
  527.     byte          GenderAsk;              // boolean
  528.     byte          MaxPages,
  529.                   MaxPageFiles,
  530.                   PageLength;
  531.     word          PageStart[7],
  532.                   FreeSpace50,            // Unused
  533.                   LocalFAttachSec,
  534.                   SecToUploadMess,
  535.                   SecToUpdateUsers,
  536.                   ReadSecNewEcho,
  537.                   WriteSecNewEcho,
  538.                   SysopSecNewEcho,
  539.                   SecReplyViaNetmail;
  540.     AskType       NetmailKillSent;
  541.     byte          SwapOnArchive,
  542.                   FreeSpace11[9],         // Unused
  543.                   PopupText;              // Popup Text Colour (constant)
  544.     word          PageEnd[7];
  545.     word          StartPeriod;
  546.     byte          FreeSpace12[24];        // Unused
  547.     word          FP_Upload;              //  File Points Upload Credit
  548.     char          AltF[10][61],
  549.                   CtrlF[10][41],
  550.                   FreeSpace13[4];
  551.     word          FP_Credit;              // Newuser Filepoints
  552.     byte          Ks_Per_FP,              // Number of Kilobytes per FP
  553.                   FreeSpace14,            // unused
  554.                   Rego_Warn_1,
  555.                   Rego_Warn_2,
  556.                   FreeSpace15[2];         // Unused
  557.     word          Min_Space_1;            //  constant
  558.     word          FreeSpace14b;           // Unused
  559.     byte          ScrHeight,              // boolean  (* 43/50 line mode *)
  560.                   MsgTmpType,             // boolean  (True=MSGTMP False=MSGTMP.<node>)
  561.                   SwapUpload,             // boolean
  562.                   PhoneLogon,
  563.                   CarrierDetect,          // (* Carrier Detect (Default=$80) *)
  564.                   NewFilesHighlight,      // boolean;
  565.                   Max_Descrip,
  566.                   Min_Descrip;
  567.     word          RequestReceipt;
  568.     char          FreeSpace16[16];
  569.     word          FP_Percent;             // Download Filepoints Credit
  570.     byte          AutoDetect,
  571.                   DispSecurityFile,       // boolean
  572.                   AskForPageReason,       // boolean
  573.                   DelIncompleteFiles,     // boolean
  574.                   FreeSpace18,            // unused
  575.                   SwapOnFeditView,        // constant
  576.                   FreeSpace19[2],         // unused
  577.                   PassChar;
  578.     byte          LocalInactivity;        // boolean
  579.     char          FreeSpace20,            // unused
  580.                   LeftBracket[2],
  581.                   RightBracket[2];
  582.     word          IgnoreFP;               // Min Security to Ignore FPs
  583.     byte          MenuMinAge,             // Minimum Age for Age Checks
  584.                   FreeSpace22[231];        // unused
  585.     word          ConfigAttr;
  586.     byte          UserCol1_2,
  587.                   UserCol3_4,
  588.                   UserCol5_6,
  589.                   UserCol7_8,
  590.                   UserBKCol,
  591.                   NewUserCol2,
  592.                   ChStatCol,
  593.                   GetEnterCol,
  594.                   USDateForSysop,         // boolean
  595.                   EzyOvrPath[61];
  596.     UserString    DefaultUploader;
  597.     byte          OvrEMS,                 // boolean;
  598.                   SwapEzy,
  599.                   FileSecPath[61],
  600.                   FreeSpace24,            // unused
  601.                   MultiTasker;
  602.     char          FreeSpace24b[3];
  603.     word          FileReqSec;
  604.     char          FreeSpace24c[255],
  605.                   ExternalEditor[61],
  606.                   DefaultOrigin[51];
  607.     char          FreeSpace25[32];
  608.     word          UploadCredit;           //  Upload Credit Percentage
  609.     char          FreeSpace[MAXFREE];
  610.   } ConfigRecord;
  611.  
  612. /**********************************************************
  613.  
  614.        FileName:    CONSTANT.EZY
  615.  
  616.        Description: Constant Configuration Information
  617.             The three following definitions
  618.                constantrecord
  619.                constantfilefreespacetype
  620.                compressrecord
  621.             make up the complete CONSTANT.EZY file
  622.             As shown in "constantfilerecord"
  623.  
  624.        scantossattr
  625.           bit 0 : Dupe Detection
  626.               1 : Kill Null Netmail
  627.               2 : Keep EchoArea Node Receipts
  628.               3 : Import Messages to Sysop
  629.               4 : Binkley Support
  630.               5 : Kill Bad Archives
  631.               6 : ArcMail 0.6 Compatability
  632.               7 : Binkley 5D Support
  633.             8 : Make Binkley Hut,Cut,etc
  634.             9 : Erase Netmail File Attaches
  635.          10-15: [Reserved]
  636.  
  637.        constantattr
  638.           bit 0 : Sysop Alias in Chat
  639.               1 : Auto Log Chat
  640.               2 : Display Full Message to User
  641.                   3 : Do not delete outbound mail bundles with no .MSG
  642.                   4 : On means do not use real name kludge line
  643.                   5 : User can write messages to user of same name
  644.                   6 : Users receive QWK messages that they posted
  645.                   7 : Show Sysop Online
  646.                   8 : Allow Taglines in BlueWave
  647.                   9 : Show Colour in File Areas
  648.                  10 : Copy files from cd before download
  649.                  11 : Local uploads/downloads only allowed from/to floppy disk
  650.                  12 : Keep Batch History
  651.            13-15: [Reserved]
  652.  
  653.        unknownarea
  654.               0 : Kill Messages
  655.               1 : Make a New EchoMail Area
  656.             2 : Make a New PassThru Area
  657.  
  658.  
  659.         Last Revision: 29-1-95
  660.  **********************************************************/
  661.  
  662.   typedef struct ConstantRecord {
  663.     char          Version[9],
  664.                   System[41];
  665.     UserString    SysopName,
  666.                   SysopAlias;
  667.     char          SystemLocation[36],
  668.                   Multiline;              // boolean, multiline operation
  669.     word          MaxMess,                //  maximum usable message areas
  670.                   MaxFile,                //  maximum usable file areas
  671.                   WatchMess,              //  watchdog message area
  672.                   PageMessBoard,          //  paging message board
  673.                   BadPwdMsgBoard;         //  bad logon message board
  674.     byte          MinTimeForCall;         //  minimum time to register call today
  675.     longint       DupeTableMsgs;          //  number of messages in ezymail dupe table
  676.     word          MaxCDCopyK;             //  Maximum Size of CD Copy Buffer
  677.     byte          FPDispChars,
  678.                   UpldrDispChars,
  679.                   DnCntDispChars;
  680.     word          ExpireWarning;
  681.     word          ScanTossAttr,           //  ezymail scan/toss info
  682.                   ConstantAttr,
  683.                   MaxMsgsRescan;          //  Maximum msgs to rescan (0=disable)
  684.     Str8          QWKFileName;            //  Unique QWK Mail FileName
  685.     word          QWKMaxMail,             //  Maximum Msgs for QWK archive
  686.                   QWKMsgBoard;            //  Bad QWK Message Board
  687.     char          UserFileDisplay[101],
  688.                   SysopFileDisplay[101];
  689.     word          MaxDaysOldUpload;       //  Maximum days old an upload can be
  690.     word          MaxFileGroups;          //  Maximum File Groups
  691.     byte          MaxOldNewFileCheck;     //  Maximum days old for new files new
  692.     byte          CallTermTime;           //  Call Terminator Time
  693.     byte          QuoteString[6],         //  quote messsage string
  694.                   SwapOnEzyMail,          //  ezymail swapping information
  695.                   UnknownArea,            //  unknown new area tag action
  696.                   SwapOnFEditView,        //  FEdit swapping information
  697.                   SwapOnArchive;          //  Ezymaint swapping information
  698.     word          MinSpaceUpload;         //  minimum space to upload
  699.     byte          TextInputColour;        //  default text input colour
  700.     word          BadMsgBoard;            //  Bad echomail msg board
  701.     NetRecord     NetAddress[MAXAKA];
  702.     char          Domain[21][MAXAKA];
  703.     word          NetmailBoard[MAXAKA];
  704.     char          NewAreaGroup[MAXAKA];
  705.     word          NewAreaStMess[MAXAKA];   //  New area start msg board
  706.     word          NewAreaTemplate[MAXAKA]; // Template area for new areas
  707.     char          SysopPwd[16];            // Pascal String
  708.     char          ExitWaitCallPwd[16];     // Pascal String
  709.     word          MaxMsgGroups;
  710.   } ConstantRecord;
  711.  
  712.   typedef struct CompressRecord {
  713.     char          EchoUnarcCmd[10][13],
  714.                   EchoUnarcPar[10][19],
  715.                   EchoArcCmd[10][13],
  716.                   EchoArcPar[10][19];
  717.   } CompressRecord;
  718.  
  719.   typedef unsigned char  ConstantFileFreeSpaceType[CONSTANTFILEFREESPACE];
  720.  
  721.     //        (* the following constants are the starting positions in
  722.     //           CONSTANT.EZY of where to find these structures *)
  723.  
  724.   #define  STARTOFCOMPRESS  (sizeof(ConstantRecord) + sizeof(ConstantFileFreeSpaceType))
  725.  
  726.   typedef struct ConstantFileRecord {
  727.     ConstantRecord             Constant;
  728.     ConstantFileFreeSpaceType  FreeSpace;
  729.     CompressRecord             Compress;
  730.   } ConstantFileRecord;
  731.  
  732.  
  733.  
  734. /*************************************************************
  735.  
  736.   Filename:     MODEM.EZY
  737.  
  738.   Description:  Holds Modem Configuration Information
  739.  
  740.                 Sequence of Reading
  741.                    System>Modem.<node>
  742.                    Current>Modem.Ezy
  743.                    System>Modem.Ezy
  744.  
  745.   Records:      1
  746.  
  747.   Last Revised: 2/8/94
  748.  
  749. **************************************************************/
  750.  
  751.   typedef struct ModemRecord {
  752.     char       Description[21];
  753.     word       ComPort;
  754.     longint    MaxBaud;
  755.     byte       LockedPort,                // boolean
  756.                ExtendedFossil,            // boolean
  757.                AutoAnswer;                // boolean
  758.     char       InitResponse[11],
  759.                RingString[11];
  760.     byte       InitTries;
  761.     char       InitString1[61],
  762.                InitString2[61],
  763.                BusyString[21],
  764.                AnswerString[21],
  765.                NoCarrierString[21],
  766.                ConnectFax[16];
  767.     word       ModemStart,
  768.                ModemEnd;
  769.     byte       ModemDelay,     
  770.                AnswerDelay,    
  771.                SendBreak,                 // boolean
  772.                OffHook,                   // boolean
  773.                ModemBusy; // Toggle DTR or ATH1  (boolean)
  774.     word       ModemEfficiency[MAXBAUDREC];
  775.     longint    ModemBaud[MAXBAUDREC];
  776.     char       ModemConnect[MAXBAUDREC][21];
  777.     char       FreeSpace[167];
  778.   } ModemRecord;
  779.  
  780.  
  781.  
  782. /**********************************************************
  783.  
  784.        FileName:    LIMITS.EZY
  785.  
  786.        Description: User Security Limits Information
  787.  
  788.  **********************************************************/
  789.  
  790.   typedef struct LIMITSRECORD {
  791.     char          Comment[21];            // Security Comment (ZStr)
  792.     word          Security,               // Security level
  793.                   Time,                   // Time limit per day
  794.                   Limit[MAXBAUDREC];
  795.     char          Ratio;                  // File Ratio
  796.     word          Credit;                 // File Ratio Credit
  797.     byte          RatioK;                 // Kilobyte Ratio
  798.     word          CreditK,                // Kilobyte Ratio Credit
  799.                   RegoDays,               // Registration in Days
  800.                   CreditMess,             // PCR Credit
  801.                   Mess,                   // PCR (%)
  802.                   TimePerCall;            // Time limit per call   0=Disabled
  803.     byte          CallsPerDay;            // Maximum Calls Per Day 0=Disabled
  804.     word          MaxBankWK,              // Maximum Withdraw Kilobytes Bank
  805.                   MaxBankWT,              // Maximum Withdraw Time Bank
  806.                   MaxBankDK,              // Maximum Deposit Kilobytes Bank
  807.                   MaxBankDT,              // Maximum Deposit Time Bank
  808.                   MaxKBank,               // Maximum Allowable Kilobytes in Bank
  809.                   MaxTBank;               // Maximum Allowable Time in Bank
  810.     byte          FreeSpace[32];
  811.   } LimitsRecord;
  812.  
  813. /**********************************************************
  814.  
  815.   FileName     : FILES.EZY
  816.  
  817.   Description  : Stores file area information
  818.  
  819.   Last Revised : 25/2/92(pwd)
  820.  
  821.   Records      : 1..65000
  822.  
  823.   Note         : FILEPATH.EZY must have the same amount
  824.                  of records.
  825.  
  826.   attribute
  827.     Bit 0 : keep files offline
  828.         1 : offline allowed
  829.         2 : sortby date
  830.         3 : sortby alpha
  831.         4 : master list
  832.         5 : show in new files check
  833.         6 : No Descriptions asked after Upload
  834.         7 : show in ezymast master list
  835.  
  836.   attribute2
  837.     Bit 0-7 : [Reserved]
  838.  
  839.   convert
  840.         0 = none
  841.         1 = zip
  842.         2 = lzh
  843.         3 = arj
  844.         4 = pak
  845.         5 = arc
  846.         6 = zoo
  847.         7 = sqz
  848.         8 = rar
  849.     9-255 = [ Reserved ]
  850.  
  851.  **********************************************************/
  852.  
  853.   typedef struct FilesEzyRecord {
  854.     char          Name[31];
  855.     byte          Attribute,
  856.                   Attribute2,
  857.                   Convert;
  858.     byte          FileGroup,
  859.                   AltGroups[3];
  860.     byte          MinimumAge;
  861.     word          UpFileArea,
  862.                   AreaPath;               // relates to FILEPATH.EZY
  863.                   SecurityType  ListSecurity,
  864.                   UpSecurity,
  865.                   SysSecurity;
  866.     word          NumDaysToDel,
  867.                   NumArrivalDaysToDel,
  868.                   NumDaysLastDownload,
  869.                   FileIdxPos;
  870.     char          FreeSpace[47];
  871.   } FilesEzyRecord;
  872.  
  873. /***********************************************************
  874.  
  875.        Filename:     <systempath>FILES.IDX
  876.  
  877.        Description:  Used by Ezycom as an index into the
  878.                      file areas.  Only used areas are stored
  879.                      in here.  CRCs are calculated the same
  880.                      as that for the fast message record.  Later
  881.                      on, it is planned to provide serveral linked
  882.                      lists, so you can traverse the index in
  883.                      sorted orders.
  884.  
  885.                      The first Record is intentionally left
  886.                      blank.  You should start reading from
  887.                      the second record.
  888.  
  889.        Size:         1 -> ??? records
  890.  
  891.  ***********************************************************/
  892.  
  893.   typedef struct FileIdxRecord {
  894.     word          RecNum;    /* 1 = Record 0 */
  895.     longint       NameCrc;
  896.     SecurityType  ListSecurity;
  897.     byte          MinimumAge,
  898.                   FileGroup;
  899.     byte          AltGroups[3];
  900.     byte          Attribute,
  901.                   Attribute2;
  902.     char          PadTo32Bytes[9];
  903.   } FileIdxRecord;
  904.  
  905. /***********************************************************
  906.  
  907.        Filename:     <systempath>FILEGRP.BBS
  908.  
  909.        Description:  Used by Ezycom as to store group information.
  910.  
  911.                      The first Record is intentionally left
  912.                      blank.  You should start reading from
  913.                      the second record.
  914.  
  915.        Size:         1 -> ??? records
  916.  
  917.  ***********************************************************/
  918.  
  919.   typedef struct FileGroupRecord {
  920.     char          Name[31]; /* C String */
  921.     SecurityType  AccessSecurity;
  922.     byte          MinimumAge;
  923.     char          FreeSpace[6];
  924.   } FileGroupRecord;
  925.  
  926.  
  927. /**********************************************************
  928.  
  929.   FileName     : FILEPATH.EZY
  930.  
  931.   Description  : Stores information about where to get
  932.                  the files
  933.  
  934.   Records      : 1..65000
  935.  
  936.   Note         : FILES.EZY must have the same amount
  937.                  of records.
  938.  
  939.   Last Revised : 26/12/94(pwd)
  940.  
  941.   Attribute
  942.     Bit 0 : CD Rom Path
  943.         1 : File Displayed as Not Enough Security
  944.         2 : Free Downloads
  945.         3 : Auto Adopt Files?
  946.        4-7: [Reserved]
  947.  
  948. ***********************************************************/
  949.  
  950.   typedef struct FilePathRecord {
  951.     char          FilePath[61],
  952.                   FilesBBS[61];
  953.     byte          KsPerFP;
  954.     SecurityType  Security;
  955.     word          UploadArea;
  956.     byte          Password[9],
  957.                   MinimumAge,
  958.                   Attribute,
  959.                   CDRomStack,
  960.                   FreeSpace[109];
  961.   } FilePathRecord;
  962.  
  963. /**********************************************************
  964.  
  965.   FileName     : FILESEC.EZY
  966.  
  967.   Description  : Stores individual (wildcard) file security
  968.  
  969.   Records      : 1->infinite  (sorted)
  970.  
  971.   Last Revised : 25/2/92(pwd)
  972.  
  973.   Attribute
  974.        Bit 0 : [Reserved]
  975.            1 : File Displayed as Not Enough Security
  976.            2 : Free Download
  977.          3-7 : [Reserved]
  978.  
  979.  **********************************************************/
  980.  
  981.   typedef struct FileSecRecord {
  982.     char         FileName[13];
  983.     SecurityType Security;
  984.     char         Password[9];
  985.     byte         MinimumAge,
  986.                  Attribute;
  987.   } FileSecRecord;
  988.  
  989. /**********************************************************
  990.  
  991.   FileName     : filebase path\FLCOUNT.BBS
  992.  
  993.   Description  : Stores number of files in each file area
  994.                  (does not include comment lines)
  995.  
  996.   Records      : 1..65000
  997.                  Always the same as FILES.EZY + FILEPATH.EZY
  998.  
  999.   Last Revised : 25/2/92(pwd)
  1000.  
  1001.   Sharing      : Always use DENYNONE + READWRITE
  1002.  
  1003.  **********************************************************/
  1004.  
  1005.   /*  Each record contains a word (2 bytes) which stores the
  1006.       amount of files in each file area.
  1007.  
  1008.       When reading the information, just seek to the
  1009.       appropriate record and read the 2 bytes
  1010.  
  1011.       When updating the count, lock the 2 bytes, then read
  1012.       it, then increate/decrease the amount, then write it
  1013.       back, and then release the lock. */
  1014.  
  1015.  
  1016. /**********************************************************
  1017.  
  1018.   FileName     : FLHXXXXX.BBS
  1019.  
  1020.   Description  : Stores file list information
  1021.  
  1022.   Last Revised : 25/2/92(pwd)
  1023.  
  1024.   Sharing      : Always use DENYNONE + READWRITE
  1025.  
  1026.   attribute 
  1027.     Bit 0 : checked
  1028.         1 : nokill
  1029.         2 : offline
  1030.         3 : [Reserved]
  1031.         4 : private
  1032.         5 : deleted
  1033.       6-7 : [Reserved] 
  1034.  
  1035.   attribute2 
  1036.    bit 0-7: [Reserved] 
  1037.  
  1038.  **********************************************************/
  1039.  
  1040.   typedef struct FileLineRecord {
  1041.     longint       FltStart;               // start of info in FLTXXXXX.BBS
  1042.     word          FltLength;              // length including null termiantor
  1043.     byte          Attribute;
  1044.     char          FileName[13];           // if the length of FileName is 0,
  1045.                                           // then it is a comment
  1046.     word          FilePath;               // pointer to filepath.ezy for path
  1047.                                           // of file 0= do not know where the 
  1048.                                           // file is 
  1049.     longint       FSize;                  // size of the actual file
  1050.     word          FDate,                  // date of the actual file
  1051.                   ArrivalDate,            // date the file arrived on the system
  1052.                   Downloads,
  1053.                   DownloadDate;           // last time the file was downloaded
  1054.                                           // if (downloads = 0) then
  1055.                                           //  this field is invalid
  1056.     byte          Attribute2;
  1057.     UserString    Uploader;
  1058.     byte          FreeSpace[57];
  1059.   } FileLineRecord;
  1060.  
  1061. /**********************************************************
  1062.  
  1063.   FileName     : FLTXXXXX.BBS
  1064.  
  1065.   Description  : Stores file list description information
  1066.  
  1067.   Last Revised : 25/2/92(pwd)
  1068.  
  1069.  **********************************************************/
  1070.  
  1071.    #define  FLTMAXSIZE  2048            // maximum size of a file description
  1072.  
  1073.  
  1074.   /* The FLTXXXXX.BBS has contains a null terminated string.
  1075.  
  1076.      It is either a comment, or a file description.  The description
  1077.      or comment can be upto FTLMAXSIZE in length.
  1078.  
  1079.      A comment maybe only 1 line long, and may NOT contain line feeds
  1080.      or carriage returns.
  1081.  
  1082.      A description can be any number of lines long, and may contain
  1083.      carriage returns, but may NOT contain line feeds (waste space)
  1084.  
  1085.      When writing to the description file, the file MUST be opened
  1086.      in DENYWRITE + READWRITE.  When reading from it, it MUST
  1087.      be opened in DENYNONE + READONLY */
  1088.  
  1089.  
  1090. /**********************************************************
  1091.  
  1092.   FileName     : EZYDOWN.<node>
  1093.  
  1094.   Description  : Stores Batch Download Information
  1095.  
  1096.   Last Revised : 20/3/93(pwd)
  1097.  
  1098.  **********************************************************/
  1099.  
  1100.   typedef struct PreDownloadRecord {
  1101.     char        FileName[13],
  1102.                 LocationFile[65];       // path to file
  1103.     longint     FSize;                  // KiloBytes
  1104.     byte        FreeDown;               // boolean
  1105.     longint     TimeToDown;             // Seconds
  1106.     byte        CDRomFile,              // boolean
  1107.                 CDStack,
  1108.                 Deleted;                // boolean
  1109.     char        PadTo128Bytes;
  1110.   } PreDownloadRecord;
  1111.  
  1112. /**********************************************************
  1113.  
  1114.   FileName     : EZYUP.<node>
  1115.  
  1116.   Description  : Stores Pre Upload Descriptions
  1117.  
  1118.   Last Revised : 25/2/92(pwd)
  1119.  
  1120.  **********************************************************/
  1121.  
  1122.   typedef struct PreUploadRecord {
  1123.     char         FileName[13],
  1124.                  Description[FLTMAXSIZE + 1];
  1125.   } PreUploadRecord;
  1126.  
  1127. /**********************************************************
  1128.  
  1129.   FileName     : <configrec.userbasepath>MAINTDN.BBS
  1130.  
  1131.   Description  : Stores Information for download counts
  1132.                  and file points credit.
  1133.  
  1134.   Last Revised : 20/1/96(pwd)
  1135.  
  1136.  **********************************************************/
  1137.  
  1138.   typedef struct MaintenanceRecord {
  1139.     char        FileName[13];
  1140.     longint     FileSize;
  1141.     word        FilePoint;
  1142.     longint     DownloaderCRC32;
  1143.   } MaintenanceRecord;
  1144.  
  1145.   
  1146. /**********************************************************
  1147.  
  1148.   FileName     : <configrec.userbasepath>MAINTUSR.BBS
  1149.  
  1150.   Description  : Stores Information for file points credit.
  1151.  
  1152.   Last Revised : 20/1/96(pwd)
  1153.  
  1154.  **********************************************************/
  1155.  
  1156.   typedef struct FilePointsMaintenanceRecord {
  1157.     word        FilePoints;
  1158.     UserString  Uploader;    
  1159.   } FilePointsMaintenanceRecord;
  1160.  
  1161. /**********************************************************
  1162.  
  1163.   FileName     :  FFPTR.BBS
  1164.  
  1165.   Description  :  Index Pointer File for the Fast Find Index
  1166.  
  1167.   Last Revised :  25/2/94(pwd)
  1168.  
  1169.   Format       :  Files with First Character #0 through to #64
  1170.                   start at Position 0 in FFIDX.BBS
  1171.  
  1172.                   [730] is all new files after the last sort
  1173.                   [729] is all files with a first letter after
  1174.                         'Z' (besides new files)
  1175.                   [1..728] is files that start with A#0 through
  1176.                         to Z#255
  1177.                   eg: AA is 2, AB is 3, ZZ is 727, ZY is 726
  1178.  
  1179.                   A value of 0x0FFFFFFFF (-1) in any position
  1180.                   indicates no files are present for that
  1181.                   position.
  1182.  
  1183. **********************************************************/
  1184.  
  1185.   typedef longint  FastPointerRecord[730];
  1186.  
  1187. /**********************************************************
  1188.  
  1189.   FileName     : FFIDX.BBS
  1190.  
  1191.   Description  : Index File of all files available for download
  1192.  
  1193.   Last Revised : 1/2/94 (pwd)
  1194.  
  1195.   Records      : 0..Infinite
  1196.  
  1197.   To add a file to the fast find index, just add an extra
  1198.   record to the end of this file.  File sharing should be
  1199.   DENYNONE + READWRITE
  1200.  
  1201.   attribute;
  1202.     Bit 0 : Deleted
  1203.        1-7: [Reserved]
  1204.  
  1205.  **********************************************************/
  1206.  
  1207.   typedef struct FastIndexRecord {
  1208.     FileStr     Name;
  1209.     word        FilePath;               // FILEPATH.EZY 1 ->
  1210.     byte        Attribute;
  1211.     longint     FileSize;
  1212.   } FastIndexRecord;
  1213.  
  1214. /**********************************************************
  1215.  
  1216.   FileName      : <multipath>ONLINE.BBS
  1217.  
  1218.   Description   : Used by Ezycom to store online information
  1219.  
  1220.   Minimum Size  : 1 Record
  1221.   Maximum Size  : 250 Records
  1222.  
  1223.   Last Revised  : 1/2/94 (pwd)
  1224.  
  1225.   Notes         : While in a door, it is possible to give
  1226.                   Ezycom more information about the door.
  1227.                   This can be done by creating a file called
  1228.                   <systempath>USERDOES.<node>.
  1229.  
  1230.     When Ezycom is waiting for a call from a particular node,
  1231.   information can be displayed in the who's online list.
  1232.   By making a simple 1 line text file in <systempath>NODEINFO.<node>
  1233.  
  1234.   status
  1235.       0 = Active
  1236.       1 = [Reserved]
  1237.       2 = Downloading
  1238.       3 = Uploading
  1239.       4 = [Reserved]
  1240.       5 = Message Browsing
  1241.       6 = Door
  1242.       7 = Chat with Sysop
  1243.       8 = Chat with Other Users Channel 000
  1244.       ...................................
  1245.     207 = Chat with Other Users Channel 199 (200 channels)
  1246.     208 = 252 [Reserved]
  1247.     253 = Node Not Active in Any Way
  1248.     254 = User Logging On
  1249.     255 = Waiting for Caller
  1250.  
  1251.   attribute : byte;
  1252.     Bit 0 : Quiet Do Not Disturb
  1253.       1-7 : [Reserved] 
  1254.  
  1255.  **********************************************************/
  1256.  
  1257.   typedef struct OnlineRecord {
  1258.     UserString   Name,
  1259.                  Alias;
  1260.     byte         Status,
  1261.                  Attribute;
  1262.     longint      Baud;
  1263.     byte         Location[26];
  1264.     longint      LastTimeUpdated;        // This field should always be updated
  1265.                                         // when the record is modified in ANY 
  1266.                                         // way by the user online. 
  1267.     char         FreeSpace[20];
  1268.   } OnlineRecord;
  1269.  
  1270. /**********************************************************
  1271.  
  1272.   FileName:     <multipath>MESSNODE.<node>
  1273.  
  1274.   Description:  Used by Ezycom for conferencing
  1275.  
  1276.   Minimum Size: 0 Records (Maybe not present!)
  1277.   Maximum Size: Unlimited
  1278.  
  1279.   Sharing:
  1280.        Writing: Denynone + WriteOnly
  1281.        Reading: Denyall + ReadWrite (Truncate after read)
  1282.  
  1283.  **********************************************************/
  1284.  
  1285.   typedef struct MultiMessageRecord {
  1286.     UserString   From;
  1287.     word         FromNode;
  1288.     char         Message[81];
  1289.     byte         PrivateMsg;             // boolean
  1290.   } MultiMessageRecord;
  1291.  
  1292. /**********************************************************
  1293.  
  1294.   FileName:     <userbase>BESTSTAT.BBS
  1295.  
  1296.   Description:  Used by Ezycom to store best user stats
  1297.  
  1298.   Minimum Size: 0 Records (Maybe not present!)
  1299.   Maximum Size: 200 Records
  1300.  
  1301.  **********************************************************/
  1302.  
  1303.   typedef struct BestUserRecord {
  1304.     UserString    BestName[7];           // BestName[1] is for BestMessages
  1305.                                        // BestName[2] is for BestCalls
  1306.                                        // .....
  1307.                                        // BestName[7] is for BestDownK
  1308.     word          BestMessages,
  1309.                   BestCalls,
  1310.                   BestUps,
  1311.                   BestDns,
  1312.                   BestFPs;
  1313.     longint       BestUpK,
  1314.                   BestDownK;
  1315.   } BestUserRecord;
  1316.  
  1317. /**********************************************************
  1318.  
  1319.   FileName:     <msgpath>\AREA<(<area>-1)/100+1>\MH<area>.BBS
  1320.                 eg: \ezy\msgbase\area1\mh00001.bbs     for area 1
  1321.                 eg: \ezy\msgbase\area10\mh01001.bbs    for area 1001
  1322.                 eg: \ezy\msgbase\area100\mh10001.bbs   for area 10001
  1323.  
  1324.   Description:  Used by Ezycom to store message header
  1325.  
  1326.   msgattr,
  1327.     Bit 0 : Deleted
  1328.         1 : Netmail pending export
  1329.         2 : [Reserved]
  1330.         3 : Private
  1331.         4 : Received
  1332.         5 : Echomail pending export
  1333.         6 : Locally generated msg
  1334.         7 : Do not kill message 
  1335.  
  1336.   netattr,
  1337.     Bit 0 : Kill/sent
  1338.         1 : Sent
  1339.         2 : File Attach
  1340.         3 : Crash
  1341.         4 : File Req
  1342.         5 : Request Receipt
  1343.         6 : Audit Request
  1344.         7 : Is a Return Receipt 
  1345.  
  1346.    extattr   : byte;
  1347.      Bit 0-7 : [Reserved] 
  1348.  
  1349.  **********************************************************/
  1350.  
  1351.   typedef struct MsgHdrRecord {
  1352.     word          PrevReply,
  1353.                   NextReply;                // 0 = No Reply Chain
  1354.     longint       StartPosition,            // Physical Start Position in
  1355.                                             // MSGT???.BBS
  1356.                   MessageLength;            // Message Length including
  1357.                                             // Null Terminator
  1358.     NetRecord     DestNet,
  1359.                   OrigNet;
  1360.     word          Cost;
  1361.     byte          MsgAttr,
  1362.                   NetAttr,
  1363.                   ExtAttr;
  1364.     longint       PostTimeDate,             // DOS Format Packed DateTime
  1365.                   RecvTimeDate;             // DOS Format Packed DateTime
  1366.     UserString    WhoTo,
  1367.                   WhoFrom;
  1368.     char          Subject[73];
  1369.   } MsgHdrRecord;
  1370.  
  1371. /**********************************************************
  1372.  
  1373.   FileName:     <msgpath>\AREA<<area-1>/100+1>\MT<area>.BBS
  1374.                 eg: \ezy\msgbase\area1\mt00001.bbs     for area 1
  1375.                 eg: \ezy\msgbase\area10\mt01001.bbs    for area 1001
  1376.                 eg: \ezy\msgbase\area100\mt10001.bbs   for area 10001
  1377.  
  1378.   Description:  Used by Ezycom to store message text
  1379.  
  1380.  **********************************************************/
  1381.  
  1382.    /* Message Text
  1383.  
  1384.           Each text part of the message starts at 'startposition',
  1385.      and continues on until a NULL terminator is found, or end
  1386.      of file is reached (shouldn't happen, but just in case).
  1387.      Each message is contained of plain text, with 0x08D
  1388.      terminators for wrapped lines or 0x0D terminators for hard
  1389.      carriage returns.  No line of text should exceed 79 characters
  1390.      excluding the terminator */
  1391.  
  1392. /**********************************************************
  1393.  
  1394.   FileName:     <msgpath>MSGFAST.BBS
  1395.  
  1396.   Description:  Used by Ezycom for mail checks
  1397.  
  1398.  **********************************************************/
  1399.  
  1400.   typedef struct MsgFastRecord {
  1401.     longint      WhoTo;               // standard 32 Bit CRC on whoto in
  1402.                                        // MH???.BBS Username is CRCd in
  1403.                                        // UPPERCASE, and does not include
  1404.                                        // null terminator or length byte
  1405.     word         MsgBoard,
  1406.                  MsgNumber;
  1407.   } MsgFastRecord;
  1408.  
  1409. /**********************************************************
  1410.  
  1411.   FileName:     <msgpath>MSGEXPRT.BBS
  1412.  
  1413.   Description:  Used by Ezycom to tell EzyNet/EzyMail whether
  1414.                 an area needs scanning or not
  1415.  
  1416.  **********************************************************/
  1417.  
  1418.   typedef unsigned char  NeedScanRecord[MAXMESS];    // boolean;
  1419.  
  1420. /**********************************************************
  1421.  
  1422.   FileName:     <msgpath>MSGREPLY.BBS
  1423.  
  1424.   Description:  Used by MsgComp/EzyLink to tell it which
  1425.                 conference(s) need reply chain
  1426.                 linking
  1427.  
  1428.  **********************************************************/
  1429.  
  1430.   typedef unsigned char  NeedReplyType[MAXMESS];     // boolean;
  1431.  
  1432. /**********************************************************
  1433.  
  1434.   FileName:     <msgpath>MSGCOUNT.BBS
  1435.  
  1436.   Description:  Used by Ezycom and Utilities for
  1437.                 message area counting.
  1438.                 Reading the number of records of
  1439.                 MHxxx.BBS gives the same effect as
  1440.                 reading the conferences count.
  1441.  
  1442.  **********************************************************/
  1443.  
  1444.   typedef unsigned int  MsgAreaCountType[MAXMESS];
  1445.  
  1446. /**********************************************************
  1447.  
  1448.   FileName:     <msgpath>MSGDLTD.BBS
  1449.  
  1450.   Description:  May or may not exist
  1451.                 Lists all the deleted messages on the
  1452.                 system.  MSGCOMP deletes the file since
  1453.                 it packs all the deleted messages.
  1454.  
  1455.  **********************************************************/
  1456.  
  1457.   typedef struct MsgDeletedRecord {
  1458.     word          MsgBoard,
  1459.                   MsgNumber;
  1460.   } MsgDeletedRecord;
  1461.  
  1462. /**********************************************************
  1463.  
  1464.   FileName:     <systempath>MESSAGES.EZY
  1465.  
  1466.   Description:  Used by Ezycom to store message areas
  1467.  
  1468.   Size:         1536 records
  1469.  
  1470.   attribute
  1471.     Bit 0 : Allow Aliases
  1472.         1 : Use Alias
  1473.         2 : Use Alias, Ask for Aliases
  1474.         3 : [Reserved]
  1475.         4 : Combined Area Access
  1476.         5 : Local File attaches
  1477.         6 : Keep Private Bit on Incoming EchoMail
  1478.         7 : Security *)
  1479.  
  1480.   attribute2
  1481.     Bit 0 : Show Seenby Lines
  1482.         1 : Forced Mail Check
  1483.         2 : Tiny Seenbys
  1484.         3-4 [Reserved]
  1485.         5 : Areafix Info Visible
  1486.         6 : Initial Combined Area Access
  1487.         7 : Do Not Use in Template *)
  1488.  
  1489.   attribute3
  1490.        0-7: [Reserved]
  1491.  **********************************************************/
  1492.  
  1493.   typedef struct MessageRecord {
  1494.     char          Name[31];
  1495.     AreaTagStr    AreaTag;
  1496.     char          QWKName[13];
  1497.     MsgType       Typ;
  1498.     MsgKindsType  MsgKinds;
  1499.     byte          Attribute,
  1500.                   Attribute2,
  1501.                   Attribute3,
  1502.                   DaysKill,
  1503.                   RecvKill;
  1504.     word          CountKill,
  1505.                   KilobyteKill;
  1506.     SecurityType  ReadSecurity,
  1507.                   WriteSecurity,
  1508.                   SysopSecurity;
  1509.     byte          MinimumAge;
  1510.     char          OriginLine[51];
  1511.     byte          OriginAddress,
  1512.                   SeenBy[MAXAKA/8];
  1513.     char          AreaGroup;
  1514.     byte          MessGroup,
  1515.                   AltGroups[3];
  1516.     byte          EchomailFeed,             // 0=No Uplink
  1517.                   DestNodes[MAXNODES/8];    // Nodes  1 to  8 - DestNode[1]
  1518.                                             // Nodes  9 to 16 - DestNode[2]
  1519.                                             // Nodes 17 to 24 - DestNode[3]
  1520.     word          MsgIdxPos;                // Position in Messages.Idx
  1521.     byte          ArrivalKill;
  1522.     char          FreeSpace[13];
  1523.   } MessageRecord;
  1524.  
  1525. /***********************************************************
  1526.  
  1527.   Filename:     <systempath>MESSAGES.IDX
  1528.  
  1529.   Description:  Used by Ezycom as an index into the
  1530.                 message areas.  Only used areas are stored
  1531.                 in here.  CRCs are calculated the same
  1532.                 as that for the fast message record.  Later
  1533.                 on, it is planned to provide serveral linked
  1534.                 lists, so you can traverse the index in
  1535.                 sorted orders.
  1536.  
  1537.                 The first Record is intentionally left
  1538.                 blank.  You should start reading from
  1539.                 the second record.
  1540.  
  1541.   Size:         1 -> ??? records
  1542.  
  1543.  **********************************************************/
  1544.  
  1545.   typedef struct MessageIdxRecord {
  1546.     word          RecNum;
  1547.     longint       NameCRC,
  1548.                   AreaTagCRC,
  1549.                   QWKNameRCR;
  1550.     MsgType       Typ;
  1551.     SecurityType  ReadSecurity,
  1552.                   WriteSecurity;
  1553.     byte          MinimumAge;
  1554.     char          AreaGroup;
  1555.     byte          MessGroup,
  1556.                   AltGroups[3];
  1557.     byte          Attribute,
  1558.                   Attribute2,
  1559.                   Attribute3;
  1560.     char          PadTo64Bytes[20];
  1561.   } MessageIdxRecord;
  1562.  
  1563. /***********************************************************
  1564.  
  1565.        Filename:     <systempath>MSGGRP.BBS
  1566.  
  1567.        Description:  Used by Ezycom as to store group information.
  1568.  
  1569.                      The first Record is intentionally left
  1570.                      blank.  You should start reading from
  1571.                      the second record.
  1572.  
  1573.        Size:         1 -> ??? records
  1574.  
  1575.  ***********************************************************/
  1576.  
  1577.   typedef struct MessageGroupRecord {
  1578.     char          Name[31]; /* C String */
  1579.     SecurityType  AccessSecurity;
  1580.     byte          MinimumAge;
  1581.     char          FreeSpace;
  1582.   } MessageGroupRecord;
  1583.  
  1584. /**********************************************************
  1585.  
  1586.     FileName:     <systempath>ECHOMGR.EZY
  1587.  
  1588.     Description:  Used by Ezycom to store node information
  1589.  
  1590.     Last Update:  1/5/95
  1591.  
  1592.     Size:         256 records
  1593.  
  1594.     compress
  1595.       0 = Compress to ZIP
  1596.       1 = Compress to LZH
  1597.       2 = Compress to ARJ
  1598.       3 = Compress to ARC
  1599.       4 = Compress to PAK
  1600.       5 = Compress to ZOO
  1601.       6 = Compress to SQZ
  1602.       7 = Compress to RAR
  1603.  
  1604.     attribute  
  1605.       Bit 0 : Node Active
  1606.           1 : Crash Mail
  1607.           2 : Hold Mail
  1608.           3 : Can Create New Echos
  1609.           4 : Add to Export on New Echo
  1610.           5 : Can Delete/Rename Areas
  1611.           6 : Direct Mail (Off=Routed Mail)
  1612.       7 : Allow 2D Security)
  1613.  
  1614.     sendpkttype
  1615.           0 = Type 2
  1616.           1 = Type 2+
  1617.         2-255 [Reserved]
  1618.  
  1619.  **********************************************************/
  1620.  
  1621.   typedef struct EchoMgrRecord {
  1622.     NetRecord     DestNet;
  1623.     DomainStr     Domain;
  1624.     word          RedirectTo;
  1625.     GroupType     Groups;                      // compressed groups A thru Z
  1626.     byte          Compress,
  1627.                   Attribute;
  1628.     char          PasswordTo[21],
  1629.                   PasswordFr[21];
  1630.     byte          DaysHold,
  1631.                   SendPktType;
  1632.     word          MaxPktSize,
  1633.                   MaxArcKSize;
  1634.     char          AreaList[65],                // Z String
  1635.                   PktPassword[9],              // Z String
  1636.                   LastExt[4],                  // Z String
  1637.                   FreeSpace[29];
  1638.   } EchoMgrRecord;
  1639.  
  1640. /**********************************************************
  1641.  
  1642.   FileName:     EVENTS.EZY (multinode file)
  1643.  
  1644.   Description:  Used by Ezycom to store event information
  1645.  
  1646.   Minimum Size: 1 record
  1647.   Maximum Size: 65000 records
  1648.  
  1649.   attribute   
  1650.     Bit 0 : Enabled
  1651.  
  1652.   days        
  1653.     Bit 0 : Sunday
  1654.         1 : Monday
  1655.             ...
  1656.         6 : Saturday
  1657.         7 : [ Reserved ] 
  1658.  
  1659.  **********************************************************/
  1660.  
  1661.   typedef struct EventRecord {
  1662.     byte         Attribute;
  1663.     word         StartTime;             // Hi Byte=Hour,Low Byte=Min
  1664.     byte         Errorlevel,
  1665.                  Days;
  1666.     word         LastTimeRun;
  1667.   } EventRecord;
  1668.  
  1669. /**********************************************************
  1670.  
  1671.   FileName:    <systempath>TODAY.BBS
  1672.                <systempath>YESTER.BBS
  1673.  
  1674.   Last Update: 1/2/94
  1675.  
  1676.   Description: Used by Ezycom to today's/yesterday's callers
  1677.  
  1678.   didwhat
  1679.     Bit 0 : (N) NewUser
  1680.         1 : (U) Upload
  1681.         2 : (D) Download
  1682.         3 : (R) Read Mail
  1683.         4 : (S) Sent Mail
  1684.         5 : (O) Outside
  1685.         6 : (C) Chat to Sysop and/or User
  1686.         7 : (P) Paged 
  1687.  
  1688.  **********************************************************/
  1689.  
  1690.   typedef struct OnTodayRecord {
  1691.     byte         Line;
  1692.     UserString   Name,
  1693.                  Alias;
  1694.     byte         Location[26];
  1695.     longint      BaudRate;
  1696.     word         LogonTime,
  1697.                  LogoffTime;
  1698.     byte         DidWhat,
  1699.                  freespace[20];
  1700.   } OnTodayRecord;
  1701.  
  1702. /**********************************************************
  1703.  
  1704.   FileName:    <systempath>TIME<node>.BBS
  1705.  
  1706.   Description: Used by Ezycom to store usage information
  1707.  
  1708.  **********************************************************/
  1709.  
  1710.   typedef struct UseageRecord {
  1711.     word         StartDate;
  1712.     longint      BusyPerHour[24],        // Minutes Used
  1713.                  BusyPerDay[7];           // Minutes Used
  1714.   } UseageRecord;
  1715.  
  1716. /**********************************************************
  1717.  
  1718.   FileName:    <systempath>MSGINFO.<node>
  1719.  
  1720.   Description: Used by Ezycom and Tide to interface to
  1721.                each other
  1722.  
  1723.     returnstatus
  1724.         0 = FSE Record Not Used
  1725.         1 = Message Saved
  1726.         2 = Message Aborted
  1727.         3 = User  Inactivity
  1728.         4 = User  Hungup
  1729.         5 = Sysop Hungup
  1730.     6-255 = Reserved 
  1731.  
  1732.   attribute    
  1733.     Bit 0 : Can Change Subject
  1734.         1 : Can Change Whoto
  1735.         2 : Can Change Private
  1736.         3 : Private Message
  1737.         4 : Is Message Forwarded (False = Quoted)
  1738.             (Providing MSGTMP.<node> exists)
  1739.         5 : Netmail Message
  1740.         6 : Avatar Capable (ANSI if not set)
  1741.         7 : EchoMail Message   
  1742.  
  1743.  **********************************************************/
  1744.  
  1745.   typedef struct FseRecord {
  1746.     UserString    WhoFrom;            // User Who wrote message
  1747.     NetRecord     OrigNet;            // From Net Address
  1748.     UserString    WhoTo;               // User Who message is to
  1749.     NetRecord     DestNet;            // To Net Address
  1750.     char          Subject[73];         // Subject of message
  1751.     byte          ReturnStatus,        // Return Status
  1752.                   Attribute;
  1753.     longint       BaudRate,           // Effective Baudrate
  1754.                   LockedBaud;          // Locked Baudrate
  1755.     word          Comport;
  1756.     byte          ScreenLength;
  1757.     word          TimeLeft;
  1758.   } FseRecord;
  1759.  
  1760. /**********************************************************
  1761.  
  1762.   FileName:    <msgbasepath>MSGRSCAN.BBS
  1763.  
  1764.   Description: Used by EzyNet and EzyMail for Rescanning a
  1765.                Message Area for a particular node
  1766.  
  1767.  **********************************************************/
  1768.  
  1769.   typedef struct RescanRecord {
  1770.     word    NodeToRescan;
  1771.     word    MsgBoard;
  1772.   } RescanRecord;
  1773.  
  1774. /**********************************************************
  1775.  
  1776.   FileName:    <msgbasepath>MSGSTATS.BBS
  1777.  
  1778.   Description: Written by EzyMail for echomail statistics
  1779.  
  1780.  **********************************************************/
  1781.  
  1782.   typedef struct MsgStatsRecord {
  1783.     word     TossedBoard[MAXMESSALL],      // Number of Messages Tossed to Msg
  1784.                                            // Board
  1785.              ScannedBoard[MAXMESSALL];     // Number of Messages Tossed to Msg
  1786.                                            // Board
  1787.     longint  TossedNode[MAXNODES];         // Number of Messages Tossed to
  1788.                                            // EchoArea Node
  1789.   } MsgStatsRecord;
  1790.  
  1791. /**********************************************************
  1792.  
  1793.   FileName:    <systempath>EXITINFO.<node>
  1794.  
  1795.   Description: Used by Ezycom in Type 15 exits to return
  1796.                Used by Ezycom in Type 7 exits for door
  1797.                   information
  1798.  
  1799.   Last Revised : 16/1/94(pwd)
  1800.  
  1801.   dayofnextevent
  1802.     0 = Sunday
  1803.          ..........
  1804.     6 = Saturday
  1805.     7 = NOEVENT 
  1806.  
  1807.   mtasker 
  1808.     Time Slice Routine to use
  1809.        0 = No Multitasker
  1810.        1 = [Reserved]
  1811.        2 = Desqview
  1812.        3 = Double DOS
  1813.          4 = OS/2 or Windows
  1814.        5 = MultiDOS Plus
  1815.        6 = Windows 3.1
  1816.   7..255 = [Reserved] *)
  1817.  
  1818.   iemsi_req1
  1819.     Bit 0 : News
  1820.         1 : Mail
  1821.         2 : File
  1822.         3 : Clrscr
  1823.           4 : Quiet
  1824.         5 : More
  1825.         6 : FSE
  1826.         7 : [Reserved] 
  1827.  
  1828.   iemsi_req2
  1829.     Bit 0-7 : [Reserved] 
  1830.  
  1831.   iemsi_prot
  1832.     Bit 0 : ZModem
  1833.           1 : SEAlink
  1834.         2 : Kermit
  1835.         3 : ZedZap
  1836.  
  1837.   iemsi_crt
  1838.     0 = TTY
  1839.     1 = ANSI
  1840.     2 = AVT0+
  1841.     3 = VT100
  1842.     4 = VT52 *)
  1843.  
  1844.   iemsi_cap    
  1845.     Bit 0 : CHT
  1846.         1 : MNU
  1847.         2 : TAB
  1848.         3 : ASCII8 
  1849.  
  1850.  **********************************************************/
  1851.  
  1852.   typedef struct ExitInfoRecord {
  1853.     word              OldBaud;              // Effective Baud Rate
  1854.     word              OldLockedBaud;        // Speed between Modem/Modem
  1855.     byte              Comport;              // Comport 1 = Com1, etc
  1856.     word              Efficiency,           // Baud Rate efficiency
  1857.                       UserRecord;           // User Record Number (0=User1)
  1858.  
  1859.     UsersRecord       UserInfo;
  1860.     UsersExtraRecord  UserExtra;
  1861.  
  1862.     UserString        SysopName,
  1863.                       SysopAlias;
  1864.     char              System[41];
  1865.     word              DownloadLimit,        // Maximum Download Limit
  1866.                       TimeLimit,            // Daily Time Limit
  1867.                       TimeTakenEvent;       // Number of Minutes Taken from User
  1868.                                             // for Event
  1869.     longint           TimeCreated,          // Number of Seconds since Midnight
  1870.                       TimeOfNextEvent,      // Number of Seconds since Midnight
  1871.                       TimeTillNextEvent;    // Number of Seconds after Time Created
  1872.     byte              DayOfNextEvent,
  1873.                       ErrorlevelOfNextEvent, // Errorlevel to return from next
  1874.                                             // event
  1875.                       Ratio;                // File Ratio
  1876.     word              Credit;               // File Ratio Credit
  1877.     byte              RatioK;               // Kilobyte Ratio
  1878.     word              CreditK,              // Kilobyte Ratio Credit
  1879.                       RegoDays,             // Registration Days
  1880.                       CreditMess,           // Post Call Ratio Credit
  1881.                       Mess;                 // Post Call Ratio
  1882.     DateTime          LoginTimeDate;        // Login Datetime
  1883.     Str8              Stack[20];            // Menu Stack
  1884.     byte              StackPos;             // Menu Stack Position (0 = No Stack)
  1885.     Str8              CurMenu;              // Current Menu
  1886.     char              OldPassword[16];
  1887.     word              LimitRecNum;          // Limits Record Being Used
  1888.     byte              BaudRecNum,           // BaudRate Record Being Used
  1889.                       RipActive,            // boolean;
  1890.                       MaxPages,             // Maximum Pages
  1891.                       PagedSysop,           // Number of Times User has Paged Sysop
  1892.                       WantChat;             // boolean;
  1893.     longint           PageStart,
  1894.                       PageEnd;              // Number of Seconds since Midnight
  1895.     byte              PageLength,           // Page Length
  1896.                       EchoEntered,          // boolean
  1897.                       NetEntered,           // boolean
  1898.                       NextSysop;            // boolean
  1899.     word              InactivityTime;       // Seconds
  1900.     byte              ProtRecNum;           // Default Protocol Record Number
  1901.                                             // 0=NoDefault
  1902.     char              ProtName[16];         // Default Protocol Name
  1903.     char              DidWhat;              // Didwhat flag for Todays Callers
  1904.     char              PageReason[61];
  1905.     byte              MTasker,
  1906.                       IEmsi_Session,        // boolean;
  1907.                       IEmsi_Req1,
  1908.                       IEmsi_Req2,
  1909.                       IEmsi_ScrLen,         // Screen Length for current session
  1910.                                             // If NOIEMSI session, this is set to
  1911.                                             // the users screen length
  1912.                       IEmsi_Prot,
  1913.                       IEmsi_Crt,
  1914.                       IEmsi_Cap,
  1915.                       PageSound;            // boolean;
  1916.     longint           TimeConnect;          // time connected this call
  1917.     byte              ScreenOn;             // boolean - whether ezycom is
  1918.                                             // displaying the screen locally or not
  1919.     longint           Baud,                 // Effective Baudrate
  1920.                       LockedBaud;           // Speed between Computer/Modem
  1921.     byte              FreeSpace[86];
  1922.   } ExitInfoRecord;
  1923.  
  1924.   typedef struct SysInfoRecord {
  1925.     longint           CallCount;
  1926.     UserString        LastCaller;
  1927.     longint           FilesSizeK;             // Updated by EzyIDX -BUILD
  1928.     word              NewUsers,
  1929.                       NewFiles,
  1930.                       NewMessages;           // Does NOT include Inbound Echomail
  1931.     UserString        LastAlias;
  1932.     word              LastStartTime;         // The start of the last session by
  1933.                                              // a user
  1934.     char              ExtraSpace[80];
  1935.   } SysInfoRecord;
  1936.  
  1937. /**********************************************************
  1938.  
  1939.   FileName     : <nodelistpath>EZYINDEX.<nodelistnum>
  1940.  
  1941.   Description  : Stores Nodelist Information
  1942.  
  1943.   Min Size     : File Not Exist
  1944.  
  1945.   Max Size     : 65000 Records
  1946.  
  1947.   Last Revised : 3/1/94(pwd)
  1948.  
  1949.   Sharing      : Reading       - DenyNone + ReadOnly
  1950.                  Insert/Update - Never (EzyNode does it)
  1951.  
  1952.  **********************************************************/
  1953.  
  1954.   typedef struct NodeListRecord {
  1955.     byte    NodeListFile;
  1956.     longint Position;
  1957.     word    Zone,
  1958.             Net;
  1959.   } NodeListRecord;
  1960.  
  1961. /**********************************************************
  1962.  
  1963.   FileName     : <nodelistpath>EZYINDEX.00
  1964.  
  1965.   Description  : AkaIndex is a pointer to which EZYINDEX.<nodelist num>
  1966.                  is used for that Aka.
  1967.  
  1968.                  NodelistFileRecord holds information to a particular
  1969.                  nodelistfile.  (nodelistfile byte in nodelistrecord).
  1970.  
  1971.   Min Size     : AkaIndex + 1 NodelistFileRecord
  1972.  
  1973.   Max Size     : AkaIndex + 255 NodelistFileRecords
  1974.  
  1975.   Last Revised : 3/1/94(pwd)
  1976.  
  1977.   Sharing      : Reading       - DenyNone + ReadOnly
  1978.                  Insert/Update - Never (EzyNode does it)
  1979.  
  1980.  **********************************************************/
  1981.  
  1982.   typedef unsigned char  AkaIndex[MAXAKA];
  1983.  
  1984.   typedef struct NodeListFileRecord {
  1985.     byte      NodeListPath[80];
  1986.     DomainStr Domain;
  1987.   } NodeListFileRecord;
  1988.  
  1989. /**********************************************************
  1990.  
  1991.   FileName     : <nodelistpath>EZYINDEX.COS
  1992.  
  1993.   Description  : Lists all the phone number costing factors
  1994.  
  1995.   Min Size     : 1 Record (Default Cost)
  1996.  
  1997.   Max Size     : Unlimited
  1998.  
  1999.   Last Revised : 3/1/94(pwd)
  2000.  
  2001.   Sharing      : Reading       - DenyNone + ReadOnly
  2002.                  Insert/Update - Never (EzyNode does it)
  2003.  
  2004.  **********************************************************/
  2005.  
  2006.   typedef struct CostRecord {
  2007.     char  PhoneNum[26];
  2008.     word  Cost;
  2009.   } CostRecord;
  2010.  
  2011. /**********************************************************
  2012.  
  2013.   FileName     : <systempath>RUMOURS.BBS
  2014.  
  2015.   Description  : Stores Rumour Information
  2016.  
  2017.   Min Size     : File Not Exist
  2018.  
  2019.   Max Size     : 65000 Records
  2020.  
  2021.   Last Revised : 27/3/93(pwd)
  2022.  
  2023.   Sharing      : Reading       - DenyNone + ReadOnly
  2024.                  Insert/Update - DenyWrite + ReadWrite
  2025.  
  2026.  **********************************************************/
  2027.  
  2028.   typedef struct RumourRecord {
  2029.     char         UserInput[71],
  2030.                  Compiled[101];
  2031.     UserString   UserName;
  2032.     word         LastUpdate;
  2033.     char         FreeSpace[46];
  2034.   } RumourRecord;
  2035.  
  2036. /**********************************************************
  2037.  
  2038.   FileName     : <systempath>LANGUAGE.EZY
  2039.  
  2040.   Description  : Language Information Setup
  2041.  
  2042.   Min Size     : 1 Record
  2043.  
  2044.   Max Size     : 250 Records
  2045.  
  2046.   Last Revised : 7/1/94(pwd)
  2047.  
  2048.   Sharing      : Reading       - DenyNone + ReadOnly
  2049.                  Insert/Update - DenyWrite + ReadWrite
  2050.  
  2051.  
  2052.   Attribute
  2053.     Bit  0 : Default Language
  2054.       1-15 : [Reserved]
  2055.  
  2056.  **********************************************************/
  2057.  
  2058.   typedef struct LanguageRecord {
  2059.     char          LangName[9],       // Z String
  2060.                   Description[61],   // Z String
  2061.                   RipPath[61],       // Z String
  2062.                   AvtPath[61],       // Z String
  2063.                   AnsiPath[61],      // Z String
  2064.                   AscPath[61],       // Z String
  2065.                   AslPath[61],       // Z String
  2066.                   G1Path[61],        // Z String
  2067.                   G2Path[61],        // Z String
  2068.                   G3Path[61],        // Z String
  2069.                   MnuPath[61],       // Z String
  2070.                   Mnu2Path[61],      // Z String
  2071.                   QAPath[61];        // Z String
  2072.     SecurityType  Security;
  2073.     word          Attribute;
  2074.     char          FreeSpace[271];
  2075.   } LanguageRecord;
  2076.  
  2077. /***********************************************************
  2078.  
  2079.    Filename     : <systempath>DNBATCH.EZY
  2080.  
  2081.    Description  : Stores Download Batch of Terminated Sessions
  2082.  
  2083.    Min Size     : 1 Record
  2084.  
  2085.    Max Size     : Infinite Records
  2086.  
  2087.    Last Revised : 10/2/95(pwd)
  2088.  
  2089.    Sharing      : Reading       - DenyNone + ReadWrite
  2090.                   Delete/Insert - DenyNone + ReadWrite
  2091.                                   Lock Record 0 then proceed
  2092.  
  2093.    Record 0     : ForwardLink is a pointer to the first free
  2094.                   record
  2095.                   BackwardLink is a pointer to the start of the
  2096.                   list
  2097.  
  2098. **********************************************************/
  2099.  
  2100.   typedef struct DownloadBatchHistoryRecord {
  2101.       UserString         Username;
  2102.       word               DateAdded;
  2103.       PreDownloadRecord  BatchFile;
  2104.       char               PadTo192Bytes[18];
  2105.       longint            ForwardLink,
  2106.                          BackwardLink;
  2107.   } DownloadBatchHistoryRecord;
  2108.  
  2109. #endif
  2110.